Software application development typically begins with one or more software engineers or other persons conceiving the functionality of the application. Development proceeds as the engineers or other persons develop code for a prototype of the software application. In some development environments, software developers and engineers may then present this prototype to managers and/or other product-oriented decision makers. Presentation of the prototype may involve demonstrating the software application's operation in a plurality of different operating environments (e.g., different operating systems, networked vs. local environments, or other environments). To enable presentation that illustrates the functionality of the software application in these different operating environments, software developers typically must develop several separate graphical user interfaces (GUIs) for the software application. Alternatively, the developers may write a GUI for a single operating environment and “port” it (e.g., adapt the code) to other operating environments.
Both of these options present an obstacle for software developers: additional time and effort is spent developing several GUIs for several different operating environments. This additional time and effort is spent solely for the purpose of presentation to managers, who then may choose only one or two of those environments in which the final product will run. If some of the environments are not pursued, then the GUIs developed for these environment are essentially wasted effort. These wasted efforts represent resources that could be conserved or used elsewhere. Instead, these resources are expended developing, for example, mouse functionality, keyboard functionality, data input/output interaction, and/or other GUI functionality for environments that may never be pursued. Even more resources may be expended in developing more functional prototype GUIs that interact and function with back end systems and/or other interfaces.
If developers decide to limit the number of prototype GUIs that are initially created (e.g., create GUIs for only a limited number of operating environments), there is a risk that the software application will later be used in one or more of the remaining platforms for which a GUI was not developed. In this situation, further effort is necessary to develop interfaces for these platforms.
As such, there exists a need for tools for developing graphical user interfaces that can be run on a plurality of different platforms or operating environments.